// Loesung_von_Aufgabe_7.6_1_Interferenzmuster

float n = 50; // n ist der Abstand zwischen Minima und Maxima
float w; // Winkel

void setup() 
{
  size(600, 600, P3D);
  background(0);
}
void draw() 
{
  translate(width/2, height/2); // Verschiebung des Koordinatenursprungs
  rotateZ(w); // Durch die Rotation um die z-Achse erhält man eine kreisförmiges Interferenzmuster
  w++;

  for (float x = 0; x < width; x++)
  {
    float p = sin(PI * x / n); 

    /* random(1.0) generiert einen Wert zwischen 0 und 1. Wenn dieser kleiner p, also kleiner 1 ist, dann ist die if-Bedingung 
     erfüllt und es wird ein Punkt am Orte x gezeichnet. Der y-Wert für diese Punkt wird unten mittels random(height) festgelegt.
     Wenn p = 1 ist, dann ist die Wahrscheinlichkeit am höchsten, dass ein Punkt im Fenster gezeichnet wird.
     Für Werte p < 1 ist die Wahrscheinlichkeit geringer */
    if (random(1.0) < p)
    {
      stroke(0, 255, 0);
      strokeWeight(1);
      point(x, random(height)); // random(height) generiert einen y-Wert zwischen 0 und height
    }
  }
}